﻿using System.Runtime.Serialization;

namespace PARCS.Core.Contracts
{
    public enum Types
    {
        Byte,
        Int,
        Long,
        Double,
        Object,
        Array
    };

    public interface IRecovery : ISerializable
    {
        void BeginTaskEvent(int taskNumber);
        void EndTaskEvent();

        int CreatePointEvent(PARCS.HostsServer.XHostInfo target, int pointNumber, int parentNumber);
        void DeletePointEvent(int pointNumber);

        IAlgorithmicModule ExecuteClassEvent(int pointNumber, string className);

        void CreateChildEvent(int parent, int child);
        void CreateChannelEvent(int from, int to);
        void AddUserDataEvent(int pointNumber, object key, object value);

        void Write(int from, int index, Types type, object value);
        void Write(int from, int index, byte[] value);
    }
}
